package org.easy.algorithm.leetcode;

/**
 * 
 * @Title: StringStr.java
 * @Package org.easy.algorithm.leetcode
 * @Description: 给定一个 haystack 字符串和一个 needle 字符串，在 haystack 字符串中找出 needle
 *               字符串出现的第一个位置 (从0开始)。如果不存在，则返回 -1。
 * 
 * @author linNaibin
 * @date 2020年7月13日 下午3:51:33
 * @version V1.0
 */
public class StringStr {
	public static void main(String[] args) {
		System.out.println(strStr("mississippi", "issip"));
	}

	public static int strStr(String haystack, String needle) {

		if (needle == null || needle.equals("")) {
			return 0;
		}

		if (needle.length() > haystack.length()) {
			return -1;
		}

		char[] haystacks = haystack.toCharArray();
		char[] needles = needle.toCharArray();

		int result = -1;
		// 从 0 开始
		int j = 0;

		for (int i = 0; i < needles.length; i++) {

			char c = needles[i];

			boolean has = false;
			for (; j < haystacks.length; j++) {
				if (c == haystacks[j]) {
					if (i == 0) {
						result = j;
					}
					has = true;
					break;
				}
			}

			//
			if (!has) {
				return -1;
			}

		}

		return result;

	}
}
